package cn.edu.gzhu.workOrderManagement.pojo.dto.workOrder;

import cn.edu.gzhu.workOrderManagement.constants.MessageConstant;
import cn.edu.gzhu.workOrderManagement.enumeration.WorkOrderProcessingStatusEnum;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;



/*
走之前改了组织和用户的接口，还没测试，工单接口还要该，可能要做一个类似于nextStatus的方法来更新到下一个状态，还有创建工单没做敏感词检测
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class WorkOrderUpdateDto {

    /**
     * 唯一表示符，对外展示
     */
    @NotBlank
    private String uuid;

    /**
     * 银行处理建议,用户输入
     */
    private String bankProcessingAdvice;


    /**
     * 内部核实情况,用户输入
     */
    private String processedDetails;


    /**
     * 处理者的用户名
     */
    private String targetUser;


    /**
     * 处理上传的附件链接
     */
    private List<String> annex;

    /**
     * 目标处理机构
     */
    private String targetOrganization;

    /**
     * 本级处理意见，覆盖上级意见
     */
    @NotNull
    private String reviewComment;

    /**
     * 推进工单还是打回给上一级
     */
    @NotNull
    private Boolean isAdvance;

    /**
     * 是否需要转单 若为true，则不改变工单的跟进情况和工单处理状况。
     */
    @NotNull
    private Boolean needsReassignment;

    /**
     * 案件号，用户输入
     */
    @Length(max = 255)
    private String caseNumber;

}
